From dab179770380918462d0d76e08b11e4abe55c933 Mon Sep 17 00:00:00 2001
From: Patrick Griffis <tingping@tingping.se>
Date: Thu, 8 Sep 2016 16:15:54 -0400
Subject: [PATCH] build: Add option to build without polkitd

This is for any consumer that needs libpolkit but does
not need polkitd. For example an application running in
flatpak.
---
 configure.ac     | 29 ++++++++++++++++++++---------
 src/Makefile.am  |  6 +++++-
 test/Makefile.am |  6 +++++-
 3 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/configure.ac b/configure.ac
index 97d4222..a08785c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -129,20 +129,30 @@ AC_DEFINE([GLIB_VERSION_MIN_REQUIRED], [GLIB_VERSION_2_30],
 AC_DEFINE([GLIB_VERSION_MAX_ALLOWED], [G_ENCODE_VERSION(2,34)],
         [Notify us when we'll need to transition away from g_type_init()])
 
+
+AC_ARG_ENABLE([polkitd],
+              [AS_HELP_STRING([--disable-polkitd], [Do not build polkitd])],
+              [enable_polkitd=$enableval], [enable_polkitd=yes])
+AM_CONDITIONAL(BUILD_POLKITD, [test x${enable_polkitd} = yes])
+
+
 AC_ARG_WITH(mozjs, AS_HELP_STRING([--with-mozjs=@<:@mozjs185/mozjs-17.0|auto@:>@],
 		                  [Specify version of Spidermonkey to use]),,
             with_mozjs=auto)
-AS_IF([test x${with_mozjs} != xauto], [
-  PKG_CHECK_MODULES(LIBJS, ${with_mozjs})
-], [
-  PKG_CHECK_MODULES(LIBJS, [mozjs185], have_mozjs185=yes, have_mozjs185=no)
-  AS_IF([test x${have_mozjs185} = xno], [
-  PKG_CHECK_MODULES(LIBJS, [mozjs-17.0], have_mozjs17=yes,
-   [AC_MSG_ERROR([Could not find mozjs185 or mozjs-17.0; see http://ftp.mozilla.org/pub/mozilla.org/js/])])
+
+AS_IF([test x${enable_polkitd} = yes], [
+  AS_IF([test x${with_mozjs} != xauto], [
+    PKG_CHECK_MODULES(LIBJS, ${with_mozjs})
+  ], [
+    PKG_CHECK_MODULES(LIBJS, [mozjs185], have_mozjs185=yes, have_mozjs185=no)
+    AS_IF([test x${have_mozjs185} = xno], [
+    PKG_CHECK_MODULES(LIBJS, [mozjs-17.0], have_mozjs17=yes,
+     [AC_MSG_ERROR([Could not find mozjs185 or mozjs-17.0; see http://ftp.mozilla.org/pub/mozilla.org/js/])])
+    ])
   ])
+  AC_SUBST(LIBJS_CFLAGS)
+  AC_SUBST(LIBJS_LIBS)
 ])
-AC_SUBST(LIBJS_CFLAGS)
-AC_SUBST(LIBJS_LIBS)
 
 EXPAT_LIB=""
 AC_ARG_WITH(expat, [  --with-expat=<dir>      Use expat from here],
@@ -605,6 +615,7 @@ echo "
         Session tracking:           ${SESSION_TRACKING}
         PAM support:                ${have_pam}
         systemdsystemunitdir:       ${systemdsystemunitdir}
+        polkitd:                    ${enable_polkitd}
         polkitd user:               ${POLKITD_USER}"
 
 if test "$have_pam" = yes ; then
diff --git a/src/Makefile.am b/src/Makefile.am
index 09fc7b3..c6fe91b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,9 @@
 
-SUBDIRS = polkit polkitbackend polkitagent programs
+SUBDIRS = polkit polkitagent programs
+
+if BUILD_POLKITD
+SUBDIRS += polkitbackend
+endif
 
 if BUILD_EXAMPLES
 SUBDIRS += examples
diff --git a/test/Makefile.am b/test/Makefile.am
index 59d0680..d43b0fe 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,7 +1,11 @@
 
-SUBDIRS = mocklibc . polkit polkitbackend
+SUBDIRS = mocklibc . polkit
 AM_CFLAGS = $(GLIB_CFLAGS)
 
+if BUILD_POLKITD
+SUBDIRS += polkitbackend
+endif
+
 noinst_LTLIBRARIES = libpolkit-test-helper.la
 libpolkit_test_helper_la_SOURCES = polkittesthelper.c polkittesthelper.h
 libpolkit_test_helper_la_LIBADD = $(GLIB_LIBS)
-- 
2.9.3

